#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

int main()
{
	pid_t id = fork();
	if (id == 0)
	{
		int cnt = 5;
		while (cnt)
		{
			printf("子进程：%d\n",getpid());
			cnt--;
			sleep(1);
		}
		exit(0);
	}

	int status = 0;
	pid_t rid = waitpid(id, NULL, 0);
	if (rid > 0)
	{
		printf("wait success!");
		if (WIFEXITED(status))
		{
			printf("正常运行结束：%d\n", WEXITSTATUS(status));
		}
	}
	return 0;
}








































//int main()
//{
//    pid_t id = fork();
//    if(id == 0)
//    {
//        // 子进程
//        int cnt = 10;
//        while(cnt--)
//        {
//            printf("子进程在运行: %d\n", cnt);
//            sleep(1);
//        }
//        exit(0);
//    }
//
//    // 父进程 -- 非阻塞轮询
//    while(1)
//    {
//        pid_t rid = waitpid(id, NULL, WNOHANG);
//        if(rid == id)
//        {
//            printf("wait child success\n");
//            break;
//        }
//        else if(rid == 0)
//        {
//            printf("child not quit!\n");
//            sleep(1);
//        }
//        else if(rid < 0)
//        {
//            printf("wait error!\n");
//            break;
//        }
//    }
//    return 0;
//}


